<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1;port=3333';
$dsn2 = 'odbc:DSN=SAMPLE;UID=john;PWD=mypass';
$dsn3 = 'sqlite:c:\sql.db'; 

preg_match('/^(.*):.*/U', $dsn, $d);
// 驱动

//preg_match('/(port|host|dbname)=(.*?)($| |;)/', $dsn, $d);

var_dump( $d );

?>